import dayjs from 'dayjs'
import { handleImage, handleScreenWidthToVw, handleScreenHeightToVh } from '../utils/tools'



/**
 * 日期时间过滤器
 * 过滤器名称:  dateTimeFormatter
 * @param {String} dateTime 需要格式化的时间（通常为时间戳）
 * @param {String} format 需要格式化的时间，参照 dayjs 的格式化，默认是 YYYY-MM-DD HH:mm:ss
 * @return {String} date 格式化后的时间
 */

const dateTimeFormatter = (dateTime, format = 'YYYY-MM-DD HH:mm:ss') => {
  if (dateTime) {
    return dayjs(dateTime).format(format)
  }
  return ''
}

/**
 * 日期过滤器
 * 过滤器名称:  dateTimeOnly
 * @param {String} dateTime 需要格式化的时间（通常为时间戳）
 * @param {String} format 需要格式化的时间，参照 dayjs 的格式化，默认是 YYYY-MM-DD
 * @return {String} date 格式化后的时间
 */

const dateTimeOnly = (dateTime, format = 'YYYY-MM-DD') => {
  if (dateTime) {
    return dayjs(dateTime).format(format)
  }
  return ''
}


/**
 * 时间过滤器
 * 过滤器名称:  timeOnly
 * @param {String} dateTime 需要格式化的时间（通常为时间戳）
 * @param {String} format 需要格式化的时间，参照 dayjs 的格式化，默认是 HH:mm:ss
 * @return {String} date 格式化后的时间
 */
const timeOnly = (dateTime, format = 'HH:mm:ss') => {
  if (dateTime) {
    return dayjs(dateTime).format(format)
  }
  return '-'
}

/**
 * 后端图片获取
 * 过滤器名称:  imageFormat
 * @param {String} fileId 需要获取的图片id
 * @return {String} url 可访问的图片路径
 */
const imageFormat = handleImage

/**
 * 将px转换成按vw的尺寸比例的px数值
 * 过滤器名称:  pxToVwFormat
 * @param {Number} currentResolution 需要转换的数值 （通常为 xx px里的xx）
 * @return {Number} 转化后的数值
 */
const pxToVwFormat = (value) => {
  return handleScreenWidthToVw(value) + 'px'
}


/**
 * 将px转换成按vh的尺寸比例的px数值
 * 过滤器名称:  pxToVhFormat
 * @param {Number} currentResolution 需要转换的数值 （通常为 xx px里的xx）
 * @return {Number} 转化后的数值
 */
const pxToVhFormat = (value) => {
  return handleScreenHeightToVh(value) + 'px'
}

/**
 * 格式化金钱的类型
 * 过滤器名称:  priceFormat
 * @param {Number} price 需要转换的数值 （通常为 xx px里的xx）
 * @return {Number} 转化后的数值
 */
const priceFormat = price => {
  const numberPrice = Number(price)
  if (numberPrice) {
    return numberPrice.toLocaleString()
  }
  return '-'
}



















export default {
  dateTimeFormatter,
  dateTimeOnly,
  imageFormat,
  pxToVwFormat,
  pxToVhFormat,
  priceFormat,
  timeOnly
}
